The present invention relates generally to the field of modems and more particularly relates to high-speed telephony soft modems.
Soft modems including host signal processing and native signal processing modems (HSP/NSP modems) are based on performing the modem task on a host processor that is performing other tasks at the same time. Prior art soft modems have a fixed nominal value of central processing unit (CPU) utilization which is required for maintaining the logical connection between local and remote data communication equipment (DCE). This nominal value may typically reach approximately 50% of the machine cycles of a 100MHz Pentium processor.
A problem encountered in the implementation of a modem task on a host processor in multitasking operating system environments is that situations often arise in which other tasks co-existing with the modem task have non-stationary CPU utilization characteristics. Such co-existing tasks may incidentally require a high number of CPU cycles before returning control to the operating system. When the number of CPU cycles required by the modem task and other concurrently running tasks exceeds the total number of available CPU cycles, the performance of the other tasks may degrade since normally the operating system gives priority to the modem task over other tasks. For example, when a modem task is run in a multitasking operating system together with a computer game task the game task may suffer performance degradation due to CPU utilization limitations imposed by the operating system due to the prioritized allocation of CPU cycles to the modem task.
It is therefore an object of the present invention to provide a method for reducing the CPU utilization of a soft modem task without breaking the data flow connection of the modem task.
Another object of the present invention is to provide a soft modem having multiple operational modes, each of the operational modes having a different level of CPU utilization, wherein the switching between the different operational modes is controlled by the host operating system, by an application task concurrent with the soft modem task, by a control task or by a user through a user command interface.
There is therefore provided, in accordance with a preferred embodiment of the present invention, a method for changing the nominal processor utilization level of a soft modem while maintaining the logical connection between the local and remote data communication equipment. The soft modem has at least two selectable operational modes, each of the operational modes has different nominal processor utilization levels. The method includes the steps of operating the soft modem in one of the at least two operational modes and switching between any of the at least two operational modes and any other operational mode of the at least two operational modes upon detecting a control signal selected from a group of predetermined control signals for changing the nominal processor utilization level of the soft modem.
There is also provided, in accordance with a preferred embodiment of the present invention, a soft modem having at least two selectable operational modes. Each of the operational modes has different nominal processor utilization levels. The soft modem uses a method for changing its nominal processor utilization level while maintaining the logical connection between the local and remote data communication equipment. The method includes the steps of operating the soft modem in one of the at least two operational modes and switching between any of the at least two operational modes and any other operational mode of the at least two operational modes upon detecting a control signal selected from a group of predetermined control signals for changing the nominal processor utilization level of the soft modem.
Further, in accordance with another preferred embodiment of the present invention, The soft modem includes a data pump, the data pump includes a receiver and the receiver includes a plurality of receiver modules. The at least two operational modes include a first operational mode in which all of the plurality of receiver modules are active and the soft modem uses bit rates and symbol rates optimized for the prevailing line quality and for the capabilities of a modem to which the soft modem is connected.
The at least two operational modes also include at least one operational mode selected from a second operational mode in which a channel filter module, a timing recovery module, an echo canceller module and a tone detectors module of the plurality of receiver modules are active, while the remaining receiver modules of the plurality of receiver modules are deactivated after storing the equalizer coefficients and the parameters of at least one other adaptive element of the receiver, a third operational mode in which the tone detectors module of the plurality of receiver modules is active, while all the remaining receiver modules of the plurality of receiver modules are deactivated, and a fourth operational mode in which the data pump of the soft modem operates using the lowest bit rate and symbol rate supported by the soft modem when no bit rate limitation is imposed by a current application, or using the lowest bit rate supported by the soft modem which still maintains a bit rate limitation imposed by the current application and the lowest symbol rate supported by the soft modem.
The step of switching is performed by directly switching between one of the at least two operational modes and another operational mode of the at least two operational modes or by switching from one of the at least two operational modes, different than the first operational mode, to the first operational mode followed by switching from the first operational mode to another operational mode of the at least two operational modes.
Further, in accordance with another preferred embodiment of the present invention, the step of switching from the first operational mode to the second operational mode includes the steps of storing the equalizer coefficients of the soft modem and at least one of the adaptive element parameters of the soft modem, deactivating all of the plurality of receiver modules except for the channel filter module, the timing recovery module, the echo canceller module and the tone detectors module, setting the protocol layer of the soft modem to an idle mode for preventing the detection of an inappropriate reception state due to the step of deactivating and the reporting of the inappropriate reception state to layers overlying the protocol layer, and upon detecting a retrain control signal or a rate renegotiation control signal, respectively, performing a retrain or a rate renegotiation procedure and repeating the steps of storing, deactivating and setting.
Further, in accordance with yet another preferred embodiment of the present invention, the step of setting the protocol layer comprises feeding idle bits to the protocol layer.
Furthermore, in accordance with another preferred embodiment of the present invention, the protocol layer is a V.42 protocol layer and the step of setting the protocol layer includes emptying the buffers which interface between the V.42 protocol layer and the layers overlying the V.42 protocol layer.
Furthermore, in accordance with another preferred embodiment of the present invention, the step of switching from the second operational mode to the first operational mode includes the steps of retrieving the equalizer coefficients and the at least one of the adaptive element parameters of the soft modem and reactivating the receiver modules which were deactivated by the step of deactivating.
Furthermore, in accordance with another preferred embodiment of the present invention, the step of switching from the first operational mode to the third operational mode includes the steps of deactivating all of the plurality of receiver modules of the soft modem except for the tone detectors module, setting the protocol layer of the soft modem to an idle mode to prevent the detection of an inappropriate reception state due to the step of deactivating and the reporting of the inappropriate reception state to layers overlying the protocol layer, and upon detecting a retrain control signal or a rate renegotiation control signal performing a retrain or a rate renegotiation procedure, respectively, and repeating the steps of deactivating and setting.
Furthermore, in accordance with another preferred embodiment of the present invention, the step of setting the protocol layer includes feeding idle bits to the protocol layer.
Furthermore, in accordance with another preferred embodiment of the present invention, the protocol layer is a V.42 protocol layer and wherein the step of setting the protocol layer includes emptying the buffers which interface between the V.42 protocol layer and the layers overlying the V.42 protocol layer.
Furthermore, in accordance with another preferred embodiment of the present invention, the step of switching from the third operational mode to the first operational mode includes the steps of reactivating the receiver modules which were deactivated by the step of deactivating, and initiating a retrain or a rate renegotiation procedure.
Furthermore, in accordance with another preferred embodiment of the present invention, the step of switching from the first operational mode to the fourth operational mode includes the steps of checking whether data indicating a minimal bit rate limitation was received from a current task. If the data was received, initiating a rate renegotiation or a retrain procedure to connect the soft modem at a minimal bit rate and at the lowest available symbol rate which maintain the limitations of the current task. If the data was not received, initiating a rate renegotiation or a retrain procedure to connect the soft modem at the lowest bit rate and the lowest symbol rate supported by the soft modem, and upon detecting a retrain control signal or a rate renegotiation control signal performing a retrain or a rate renegotiation procedure, respectively.
Furthermore, in accordance with another preferred embodiment of the present invention, the receiver includes a decision module and the method further includes the step of using hard decision instead of soft decision in the decision module.
Furthermore, in accordance with another preferred embodiment of the present invention, the data pump includes a channel equalizer module, a channel filter module and an echo canceller module, and the method further includes the step of shortening the fixed and adaptive finite impulse response filter length of at least one of the channel equalizer module, the channel filter module and the echo canceller module.
Furthermore, in accordance with another preferred embodiment of the present invention, the method further includes the step of updating the parameters of at least one adaptive element of the soft modem at the lowest possible rate.
Furthermore, in accordance with another preferred embodiment of the present invention, the data pump includes a modulator module and a demodulator module and the method further includes the step of terminating the use of preceding by the modulator module and the demodulator module.
Furthermore, in accordance with another preferred embodiment of the present invention, the data pump includes a modulator module and a demodulator module and the method further includes the step of terminating the use of non-linear encoding by the modulator module and the demodulator module.
Furthermore, in accordance with another preferred embodiment of the present invention, the at least one adaptive element is selected from the group of equalizer coefficients, the phase locked loop coefficients, the timing recovery locked loop coefficients and any combination thereof.
Furthermore in accordance with another preferred embodiment of the present invention, the step of switching from the fourth operational mode to the first operational mode includes the steps of initiating a retrain or a rate renegotiation procedure, and reconfiguring all modules of the soft modem for operating in the first operational mode.
Furthermore, in accordance with another preferred embodiment of the present invention, the control signals are provided by the operating system running the soft modem as a task.
Furthermore, in accordance with another preferred embodiment of the present invention, the control signals are provided by at least one application, the application concurrently running as a task together with the soft modem in a multi-tasking operating system.
Furthermore, in accordance with another preferred embodiment of the present invention, the control signals are provided by a control task concurrently running together with the soft modem in a multi-tasking operating system.
Finally, in accordance with another preferred embodiment of the present invention, the control signals are provided by a user of an operating system running the soft modem as a task.